1. Field of the Invention
This invention relates to systems for providing electronic documents, and more particularly to document delivery systems wherein servers transcode documents delivered to client machines.
2. Description of Related Art
The World Wide Web, known simply as the xe2x80x9cWebxe2x80x9d, is a network of Internet servers that provide specially formatted electronic documents to various xe2x80x9cclientxe2x80x9d machines. Web servers currently support documents formatted in a text-based markup language called hypertext markup language (HTML).
In order to provide Web access to client machines with limited capabilities (e.g., palmtop or handheld computers), a xe2x80x9ctranscoder proxyxe2x80x9d is typically positioned between the client machine and an Internet server. The transcoder proxy may, for example, provide selected portions of a requested Web document to the client machine based upon the capabilities of the client machine. In doing so, the transcoder proxy may translate one or more selected portions of the Web document from one digital format to another.
FIG. 1 is a block diagram of a representative system 10 currently used to provide an electronic document 12 (e.g., a Web page) to a client machine 14 with limited capabilities. Client machine 14 may be, for example, a palmtop or handheld computer with limited memory, processing capability, and/or display capability. System 10 includes an internet server 16, and a transcoder proxy 18 interposed between client machine 14 and internet server 16. Transcoder proxy 18 forwards a request for document 12 from client machine 14 to internet server 16. Such a request typically includes a uniform resource locator (URL) of document 12 specifying the internet protocol (IP) address of document 12 and the name of the file containing document 12.
Internet server 16 fetches document 12 and provides document 12 to transcoder proxy 18. Based upon the capabilities of client machine 14, transcoder proxy 18 may translate or xe2x80x9ctranscodexe2x80x9d one or more selected portions of document 12 from one digital format to another. For example, transcoder proxy 18 may transcode a portion of document 12 from HTML to a script written in a scripting language understood by a Web browser application program running within client machine 14. The Web browser program may use information conveyed by the script to present the one or more selected portions of document 12 upon a display device of client machine 14.
Alternately, client machine 14 may include a text-to-speech converter, and the information conveyed by the script may be used to output the one or more selected portions of document 12 as speech through a speaker of client machine 14. The term xe2x80x9cassistive technologyxe2x80x9d is used herein to describe technology that helps physically challenged individuals access to a computer system (e.g., client machine 14). Well known types of assistive technologies include xe2x80x9cscreen readersxe2x80x9d which convert display information to speech, xe2x80x9cscreen magnifiersxe2x80x9d which enlarge features of portions of display screen contents, and voice recognition software which converts speech to a digital representation of text or commands.
Computer language code or xe2x80x9cscriptxe2x80x9d which modifies visual presentations of electronic documents in response to user input is increasingly being included within electronic documents. Such interactive aspects of electronic documents are used to provide, for example, Web site navigation information in response to user input. JAVASCRIPT ((trademark) Netscape Comm. Corp., Mountain View, Calif.) is a well known cross-platform, object-based scripting language for client and server applications. JAVASCRIPT is commonly used to add interactive aspects to electronic documents such as Web pages.
The Document Object Model (DOM) is an application programming interface (API) for xe2x80x9cdocumentsxe2x80x9d. The World Wide Web Consortium (W3C) has authored a DOM specification available on the Web at URL www.w3.org. The DOM defines the logical structure of documents and the way a document is accessed and manipulated. In the DOM specification, the term xe2x80x9cdocumentxe2x80x9d is used in the broad sense. Increasingly, XML is being used as a way of representing many different kinds of information that may be stored in diverse systems. Much of this information would traditionally be seen as data rather than as documents.
In the DOM, documents have a logical structure which is very much like a tree. To be more precise, the logical structure is like a xe2x80x9cforestxe2x80x9d or xe2x80x9cgrovexe2x80x9d, which can contain more than one tree. However, the DOM specification does not require that documents be implemented as a tree or a grove, nor does it specify how the relationships among objects be implemented. The DOM is a logical model that may be implemented in any convenient manner. In the DOM specification, the term xe2x80x9cstructure modelxe2x80x9d is used to describe the tree-like representation of a document. Terms like xe2x80x9ctreexe2x80x9d or xe2x80x9cgrovexe2x80x9d are not used to avoid implying a particular implementation. One important property of DOM structure models is structural isomorphism. If any two DOM implementations are used to create a representation of the same document, they will create the same structure model, with precisely the same objects and relationships.
In current document delivery systems, a problem arises in that many client machines do not support interactive aspects of electronic documents such as Web pages due to resource limitations. As a result, transcoding proxy 18 may be configured to remove any computer language code or script within the one or more selected portions of an electronic document provided to client machine 14. Web site navigation capability may be lost, and with it the ability to access Web site information. Additionally, a client machine may not have sufficient resources to provide an assistive technology solution for a physically challenged user.
It would thus be desirable to have an electronic document delivery system which allows a client machine with limited resources to provide interactive aspects of electronic documents such as Web pages and/or an assistive technology solution for a physically challenged user. The desired document delivery system may use the document object model (DOM) to define a logical structure of an electronic document, and to access and manipulate the electronic document.
Several embodiments of an electronic document delivery system are described including a client machine coupled to (i.e., in wired or wireless communication with) a transcoder proxy. The client machine may be, for example, a palmtop or handheld computer or a wireless communication device with limited memory and/or processing capability. In one embodiment of the system, the client machine includes an assistive technology device for presenting information to a user (e.g., a Braille display or a speech engine). The transcoder proxy is coupled to receive electronic documents. The electronic documents are expressed in a first digital format (e.g., a text-based markup language such as HTML or XML). Each electronic document includes at least one element. The transcoder proxy assigns a unique identifier to each of the elements, and forms a model of a logical structure of the electronic document. The model may also define methods for accessing and manipulating the document. The model may be, for example, a document object model (DOM).
The transcoder proxy uses the model to produce an xe2x80x9coriginalxe2x80x9d script. The original script includes at least a portion of the electronic document expressed in a second digital format (e.g., a scripting language). The original script includes the document element and the identifier assigned to the element. The transcoder proxy provides the original script to the client machine.
The client machine receives the original script, and uses the original script to present the portion of the electronic document to the user via the assistive technology device. The client machine generates an assistive technology event in response to user input via the assistive technology device. The client machine associates the assistive technology event with an element of the original script. The client machine provides assistive technology event information pertaining to the assistive technology event and the identifier assigned to the element associated with the event to the transcoder proxy. The assistive technology event information may include a code value identifying the assistive technology event.
Elements of the electronic document are associated with corresponding identifiers within the model. In response to the assistive technology event information and the identifier provided by the client machine, the transcoder proxy accesses the element within the model using the identifier. The transcoder proxy uses the model to produce a xe2x80x9cmodificationxe2x80x9d script, wherein the modification script differs from the original script. The transcoder proxy provides the modification script to the client machine. The client machine receives the modification script, and uses the modification script to modify the presented portion of the electronic document.
One embodiment of the transcoder proxy includes a synchronous document object model (DOM) generator coupled to a transcoder and an assistive technology interface generator. The synchronous DOM generator is adapted to receive the electronic document in the first digital format. The synchronous DOM generator includes an identifier (ID) generator for assigning the unique identifier to each element. The synchronous DOM generator forms a pre-transcoded DOM representing a logical structure of the electronic document, wherein elements are associated with corresponding identifiers within the pre-transcoded DOM. The synchronous DOM generator provides a portion of the electronic document in the first digital format to the transcoder.
The transcoder receives the portion of the electronic document in the first digital format, and translates the portion of the electronic document from the first digital format to the original script in the second digital format. As described above, the original script includes an element and the identifier assigned to the element. The transcoder provides the original script (e.g., to the client machine).
The assistive technology interface generator is adapted to receive the assistive technology event information and the identifier assigned to the element within the original script. The assistive technology information pertains to an assistive technology event generated in response to user input via the assistive technology device. The assistive technology interface generator may use the assistive technology event information and the identifier to produce DOM access commands, and may provide the DOM access commands to the synchronous DOM generator.
In response to the DOM access commands, the synchronous DOM generator accesses the pre-transcoded DOM. The synchronous DOM generator may modify the pre-transcoded DOM. Following any modification of the pre-transcoded DOM, the synchronous DOM generator uses the pre-transcoded DOM to produce a second portion of the electronic document. The synchronous DOM generator provides the second portion of the electronic document to the transcoder.
The transcoder receives the second portion of the electronic document in the first digital format, and translates the second portion from the first digital format to the modification script in the second digital format. The transcoder provides the modification script (e.g., to the client machine).
One embodiment of the client machine includes the assistive technology device described above, and a user agent coupled to the assistive technology device. The user agent is adapted for coupling to a transcoder proxy. The user agent receives the original script from the transcoder proxy, including an element and the identifier assigned to the element, and forms a transcoded DOM in response to the original script. The transcoded DOM is a representation of the portion of the electronic document. The user agent uses the transcoded DOM to produce output commands, and provides the output commands to the assistive technology device (e.g., via an assistive technology coupled between the user agent and the assistive technology device). In response to the output commands, the assistive technology device presents information to the user.
The user agent generates an assistive technology event in response to user input via the assistive technology device. The user agent associates the assistive technology event with the element within the original script. The user agent provides assistive technology event information and the identifier assigned to the element associated with the assistive technology event to the transcoder proxy. The user agent receives the modification script from the transcoder proxy, and modifies the transcoded DOM in response to the modification script. As a result, the portion of the electronic document previously presented to the user is modified.
A first method for presenting an electronic document to a user, which may be embodied within the transcoder proxy, includes receiving the electronic document in the first digital format. A unique identifier is assigned to each element of the electronic document. A model of a logical structure of the electronic document is formed, wherein elements are associated with corresponding identifiers within the model. The model is used to produce the original script including at least a portion of the electronic document expressed in the second digital format. As described above, the original script includes at least one element and the identifier assigned to the at least one element. The original script is provided (e.g., to a client machine). Assistive technology event information and an identifier assigned to an element associated with an assistive technology event are received. The model is accessed using the identifier. The model is used to produce the modification script which differs from the original script. The modification script is provided (e.g., to the client machine).
A second method for presenting an electronic document to a user, which may be embodied within the client machine, includes receiving the original script including at least a portion of the electronic document expressed in a digital format. As described above, the original script also includes an element of the document, and an identifier assigned to the element. The original script is used to present the portion of the electronic document. An assistive technology event is generated in response to user input. The assistive technology event is associated with the element. Assistive technology event information and the identifier assigned to the element are provided in response to the assistive technology event. The modification script is received and used to modify the presented portion of the electronic document.